package com.zbkj.crmeb.store.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.crmeb.store.model.StoreProductGroupActivity;

import java.util.List;

public interface StoreProductGroupActivityService extends IService<StoreProductGroupActivity> {

    /**
     * 功能描述: 通过活动id获取商品id
     * @Param: [id]
     * @Return: com.zbkj.crmeb.store.model.StoreProductGroupActivity
     * @Author: wangzh
     * @Date: 2022/11/29 14:18
     */
    Integer getProductIdByActivityId(Integer activityId);

    Integer getProductIdByActivityId2(Integer id);
    /**
     * 功能描述: 通过活动id获取活动id列表
     * @Param: [id]
     * @Return: com.zbkj.crmeb.store.model.StoreProductGroupActivity
     * @Author: wangzh
     * @Date: 2022/11/29 14:18
     */
    List<Integer> getActivityIdsByActivityId(Integer id);

    /**
     * 功能描述: 通过活动唯一id获取活动id
     * @Param: [id]
     * @Return: com.zbkj.crmeb.store.model.StoreProductGroupActivity
     * @Author: wangzh
     * @Date: 2022/11/29 14:18
     */
    List<Integer> getActivityIdsByGroupId(String id);

    /**
     * 功能描述: 通过活动id获取商品id
     * @Param: [id]
     * @Return: com.zbkj.crmeb.store.model.StoreProductGroupActivity
     * @Author: wangzh
     * @Date: 2022/11/29 14:18
     */
    String getGroupIdByActivityId(Integer id);

    /**
     * 功能描述: 通过商品id移除商品拼团信息
     * @Param: [productId]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2022/11/29 14:51
     */
    Boolean removeProductByProductIdAndGroupId(Integer productId, String groupId);

    /**
     * 功能描述: 通过商品id获取商品是否存在
     * @Param: [productId]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2022/11/29 14:52
     */
    Boolean getProductInfoIsExistByProductId(Integer productId, List<Integer> activityIds);

    /**
     * 功能描述: 通过活动id获取商品信息
     * @Param: [activityIds]
     * @Return: java.util.List<com.zbkj.crmeb.store.model.StoreProductGroupActivity>
     * @Author: wangzh
     * @Date: 2022/11/29 16:53
     */
    List<StoreProductGroupActivity> getByActivityIds(List<Integer> activityIds);

    /**
     * 功能描述: 通过商品id，获取拼团商品信息
     * @Param: [productId]
     * @Return: java.util.List<com.zbkj.crmeb.store.model.StoreProductGroupActivity>
     * @Author: wangzh
     * @Date: 2022/11/30 10:57
     */
    List<StoreProductGroupActivity> getProductInfoByproductId(Integer productId, List<Integer> activityIds, String groupId);

    /**
     * 功能描述: 通过活动id查找子表，通过商品id分组，返回是否是阶梯拼团活动，用于设置拼团活动参团人数
     * @Param: [activity]
     * @Return: java.util.List<java.lang.Integer>
     * @Author: wangzh
     * @Date: 2022/11/30 14:36
     */
    List<Integer> getActivityIdsByActivityId(Integer activityId, List<Integer> ids, String groupId);

    /**
     * 功能描述: 删除拼团商品信息，阶梯拼团时会有多个id，所以参数为list
     * @Param: [ids]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2022/11/30 15:34
     */
    Boolean removeProductByActivityId(List<Integer> ids);

    /**
     * 功能描述: 获取活动id
     * @Param: [ids]
     * @Return: java.util.List<com.zbkj.crmeb.store.model.StoreProductGroupActivity>
     * @Author: wangzh
     * @Date: 2022/12/19 11:32
     */
    List<StoreProductGroupActivity> getActivityId(List<Integer> ids, List<Integer> productIdList);

    /**
     *
     * @param skuId
     * @return
     */
    StoreProductGroupActivity getByIdAndActivityId(Integer skuId,String groupId);

    StoreProductGroupActivity getByIdAndActivityIdList(List<Integer> groupActivityIds, Integer productId);
}
